perm filename SEC.SAI[DIA,KMC]4 blob sn#166700 filedate 1975-07-01 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00011 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	BEGIN
C00010 00003	 D ROUTINE FOR DELETING DIA FILES
C00017 00004	 S ROUTINE FOR FOR GOING THRU DIA FILES AND COLLECTING NET STATS 
C00022 00005	 U ROUTINE FOR GOING THRU SOR AND TOPICS FOR UNUSED 
C00024 00006	 I ROUTINE FOR GETTING THE IMPORTANT STUFF FROM PDAT 
C00029 00007	 C ROUTINE FOR GETTING A LIST OF TOPICS FROM PDAT 
C00031 00008	 P ROUTINE FOR FOR GOING THRU DIA FILES
C00038 00009	 A ROUTINE FOR REPLACING PRONOUNS BY "THEY" 
C00040 00010	 G ROUTINE FOR APPENDING FILES 
C00042 00011	 B ROUTINE FOR SPECIAL MOD: PUTS IN BLANK LINES
C00048 ENDMK
C⊗;
BEGIN
REQUIRE "IODEFS[1,BLF]" SOURCE_FILE;


DEFINE ITT(X,N) = "FOR X←1 STEP 1 UNTIL N DO";
DEFINE ∂=" &BLANK1& ";
STRING BLANK1,BLANK10,BLANK20,DELIMSS,FORMFEED;


INTEGER DICE, SW, P, P1, Q, Q1, I, I1, J, J1, K, K1, W, L, T, WFLAG;
INTEGER NEXTL,NEXTA,LI,SSLEN,ATLEN,ERROR,IDUM,INCH1,INCH2,EOF1,EOF2;
REAL R, RR, RRR;
STRING S, SS, SSS,ST,SY,SV,FILENAME,SU,LASTNAME,LASTLINE,ZEROKS,TOPIC,LASTB,AREA;
STRING S1,S2;
PRELOAD_WITH [11] 0;
INTEGER ARRAY AA[1:11];
STRING  ARRAY SA[1:15];
INTEGER ARRAY DUMMAA[1:6,1:3];

STRING PROC RIGHTZ(INTEGER L; STRING S);
	RETURN(IF LN(S)<L THEN ZEROKS[1 TO L-LN(S)]&S  ELSE S[1 TO L]);

STRING PROC OFFS(STRING S; INTEGER I);
  BEGIN STRING ST; INTEGER L;  L←LENGTH(S);
  IF I<L THEN ST←S[I+1 TO L] ELSE ST←NULL;  RETURN (ST) ;  END;



BOOLEAN PROC EQS(STRING S);	
	RETURN(IF EQU(S,NULL) OR EQU(S," ") THEN TRUE ELSE FALSE);

STRING PROC READIN(INTEGER CHAN);
  BEGIN STRING S; S←INPUT(CHAN,1); 
  WHILE ¬EOF AND EQS(S) DO S←INPUT(CHAN,1);
  IF EOF THEN IF CHAN=INCH1 THEN EOF1←EOF ELSE EOF2←EOF;  RETURN(S);  END;

PROC OUTB(INTEGER CHAN; STRING S);
  BEGIN IF ¬EQU(SV,S[1 TO 6]) THEN BEGIN OUT(OUCH, NULL ↓ ); SV←S[1 TO 6]; END;
  OUT(OUCH, S);  END;

STRING PROC READNOC(INTEGER I);
  BEGIN STRING S,SDUM; INTEGER FLAG; FLAG←0; 
    WHILE ¬EOF AND ¬EOF1 AND ¬EOF2 AND FLAG=0 DO BEGIN  S←READIN(I); 
	IF EQU(S[1 TO 1],FORMFEED) THEN SDUM←LOP(S);
	IF EQU(S[1 TO 4],"(***") THEN FLAG←0
	ELSE IF EQU(S,NULL) THEN FLAG←0
	ELSE IF EQU(S," ") THEN FLAG←0
	ELSE FLAG←1;	END;
	RETURN (S);  END;


PROC READCOMMENT(INTEGER I);
BEGIN  IF EQU(SS[1 TO 7], "COMMENT") THEN BEGIN
	  WHILE ¬EQU(SS[2 TO 2],";") AND ¬EQU(SS[3 TO 3],";") AND ¬EOF1 AND ¬EOF2
		DO   SS←READIN(I);
	  SS←READIN(I);
	  END;  END;


BOOLEAN PROC QCHECK(STRING S);
  IF S="T" OR S="H" OR S="S" THEN RETURN (TRUE) ELSE RETURN (FALSE);

BOOLEAN PROC CHECK(STRING S);
  BEGIN INTEGER I;  I←LENGTH(S); IF I<2 THEN RETURN(FALSE);

  IF I=2 AND EQU(S,"HE") THEN RETURN(TRUE) ;
  IF I=3 AND (EQU(S,"HIS") OR EQU(S,"HIM") OR EQU(S,"HER") OR EQU(S,"SHE")) 
	THEN RETURN(TRUE) ;
  IF I=4 AND (EQU(S,"THEM") OR EQU(S,"HERS")) THEN RETURN(TRUE);
  IF (I=5 OR I=6) AND EQU(S[1 TO 5],"THEIR") THEN RETURN(TRUE);
  RETURN(FALSE);
  END;



FORMFEED← '14;
ZEROKS←"000000000000";
BLANKS←"                                                   ";
BLANK1←"   ";
BLANK20←"                    ";
BLANK10←"          ";
FLAG←0;
STDBRK(INCH);
DELIMSS← '15 & '12 & '40 & '11 & '14;
SETBREAK(13, '12 & '40, '15, "INS");
SETBREAK(14,DELIMSS & " ?.()","","INR");
SETBREAK(15,"αλ","","INR");

COMMENT  BREAKSETS 17 AND 18 ARE RESERVED FOR TEMPORARY USE;

SW←0; J←0;
ITT(I,6) ITT(K,3) DUMMAA[I,K]←0;
ITT(I,5) SA[I]←" ";

COMMENT ********************************* ;

WHILE TRUE DO  BEGIN	"TOPBLOCK"

S←ASK("H FOR HELP -- GO?");

IF EQU(S, "X") THEN DONE "TOPBLOCK";

IF EQU(S, "H") THEN BEGIN

SAY("A for replAcing pronouns with THEY " ↓ );
SAY("B for inserting blank lines " ↓ );
SAY("C for making a list of topics from PDAT " ↓ );
SAY("D for deleting DIA files from DIA,KMC   " ↓ );
SAY("G for appending files with file names " ↓ );
SAY("U for making a list of unused from SOR and TOPICS " ↓ );
SAY("I for making a list of stuff from PDAT for PDATB " ↓ );
SAY("P for going thru DIA files  " ↓ );
SAY("S for going thru DIA files and collecting net stats " ↓ );
SAY("T for testing something" ↓ ↓ );

END;  COMMENT END OF H ROUTINE;
COMMENT  D ROUTINE FOR DELETING DIA FILES;

IF EQU(S,"D") THEN BEGIN "D"

SAY("Here we go deleting DIA files on DIA,KMC " ↓ );
FILIN("PAR2.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
W←CVD(SS); RELEASE(INCH);
SAY("top number = " & CVS(W) ↓ );


SS←ASK("WANT TO DELETE NORMAL DIA FILES [Y,N]? ");
IF EQU(SS,"Y") THEN BEGIN "DEL"

SS←ASK("DELETE TO WHAT NUMBER [T FOR THRU.FIL]? ");  
IF EQU(SS,"T") THEN  BEGIN
	FILIN("THRU.FIL[DIA,KMC]");
	SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
	W←CVD(SS); RELEASE(INCH);  END
ELSE W←CVD(SS);
SAY("top number = " & CVS(W) ↓ );

FILIN("DEL.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
J←CVD(SS); RELEASE(INCH);
SAY("bottom number = " & CVS(J) ↓ );

WHILE (J+1)≠W DO  BEGIN "READDIA"

J←J+1;
SS←"P"&CVS(J)&".DIA[DIA,KMC]";  COMMENT SAY("reading from "& SS ↓ );
FLAG←0;	FILIN(SS);	I←FLAG;
IF I≠0 THEN  SAY(SS& " doesnt exist" ↓ )
	ELSE BEGIN SAY("deleting "&SS ↓ ); IDUM←0;  RENAME(INCH,NULL,0,IDUM);
	IF IDUM THEN SAY("DELETE FAILED!!" ↓ );  END;
RELEASE(INCH);
SAY("thru "&CVS(J) ↓ );

END "READDIA" ;

IF W≠(J+1) THEN J←J-1;  COMMENT DIDN'T REALLY GET THRU JTH FILE;
FILOUT("DEL.FIL[DIA,KMC]");  OUT(OUCH,CVS(J) ↓ );  RELEASE(OUCH);
SAY("thru P" & CVS(J) ↓ );
SAY("done with deleting DIA files" ↓ );

END "DEL";

END "D" ;
COMMENT  S ROUTINE FOR FOR GOING THRU DIA FILES AND COLLECTING NET STATS ;

IF EQU(S,"S") THEN BEGIN "S"

SETBREAK(17,'12 & '15 & "(","","INS");  COMMENT THIS SCANS UNTIL ( CRLF ;
SETBREAK(18,'12 & '15 & "?.()","","INS");  COMMENT THIS SCANS UNTIL ?.()CRLF ;
SAY("Here we go thru DIA files on DIA,KMC to collect net stats " ↓ );
FILIN("PAR2.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
I←CVD(SS); RELEASE(INCH);
SAY("top number = " & CVS(I) ↓ );
FILIN("STATS.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
J←CVD(SS); RELEASE(INCH);
SAY("bottom number = " & CVS(J) ↓ );
SS←ASK("Want to quit?");  IF EQU(SS,"Y") THEN DONE "TOPBLOCK";

LASTLINE←ASK("Tell me the dates ");

P←Q←0;  COMMENT TO SAVE TIMES ;

WHILE (J+1)≠I DO  BEGIN "READDIA"

J←J+1;
SS←"P"&CVS(J)&".DIA[DIA,KMC]";  SAY("reading "& SS ↓ );
FILIN(SS);	
IF FLAG≠0 THEN BEGIN SAY(SS& " doesnt exist" ↓ ); CONTINUE "READDIA";  END;

SS←INPUT(INCH,1);  ST←NULL; SS←INPUT(INCH,1);

WHILE ¬EOF DO BEGIN "READFILE"

  WHILE ¬(NULL=SS) AND  ¬(EQU(SS[1 TO 4],"NET ") OR EQU(SS[1 TO 7],"NONNET ")) DO
      	  SU←SCAN(SS,17,IDUM);
  IF SS THEN BEGIN SU←SCAN(SS,18,IDUM); ST←SU; END;

  SS←INPUT(INCH,1);

END "READFILE" ;

COMMENT ******* OUT(OUCH,ST ↓ );
SAY("thru "&CVS(J) ↓ );	 RELEASE(INCH);
IF EQU(ST[1 TO 6],"NONNET") THEN SU←ST[4 TO ∞] ELSE SU←ST;
K←CVD(SU[5 TO ∞]); 
IF EQU(ST[1 TO 6],"NONNET") THEN P←P+K ELSE Q←Q+K;  COMMENT P IS NONNET, Q IS NET;

END "READDIA" ;

IF I≠(J+1) THEN J←J-1;  COMMENT DIDN'T REALLY GET THRU JTH FILE;
LASTLINE← LASTLINE&" NONNET= " & CVS(P/1000) & ", NET= " & CVS(Q/1000) &" IN SECS ";

FILIN("STATSR.FIL[DIA,KMC]"); SS←INPUT(INCH,1);
FILOUT("STATS9.FIL[DIA,KMC]");
WHILE NOT EOF DO BEGIN OUT(OUCH,SS ↓ ); SS←INPUT(INCH,1); END;
OUT(OUCH,LASTLINE ↓ ); RELEASE(OUCH);
RENAME(INCH,NULL,0,IDUM);  IF IDUM THEN SAY("DELETE OF STATS.FIL FAILED" ↓ );
RELEASE(INCH);
FILIN("STATS9.FIL[DIA,KMC]"); RENAME(INCH,"STATSR.FIL[DIA,KMC]",0,IDUM); RELEASE(INCH);
IF IDUM THEN SAY("RENAME FAILED FOR STATS.FIL[DIA,KMC] " ↓ );
FILOUT("STATS.FIL[DIA,KMC]");  OUT(OUCH,CVS(J) ↓ );  RELEASE(OUCH);
SAY("thru P" & CVS(J) ↓ );
SAY("done with DIA files" ↓ );

END "S" ;
COMMENT  U ROUTINE FOR GOING THRU SOR AND TOPICS FOR UNUSED ;

IF EQU(S,"U") THEN BEGIN "U"

INTEGER ARRAY IA[0:9999];
ITT(I,9999) IA[I]←0;  IA[0]←0;  J←0;  COMMENT J IS THE HIGHEST NUMBER;

SAY("This goes thru SOR and TOPICS and looks for unused  " ↓ );
SS←ASK("FILOUT="); FILOUT(SS);

FILENAME←ASK("FILIN[SOR]="); FILIN(FILENAME);
SS←READIN(1); READCOMMENT(1);	

WHILE NOT EOF DO  BEGIN "SOR"
  SU←SCAN(SS,15,IDUM); IF SS THEN BEGIN SU←SS[2 TO 5];  I←CVD(SU);  IA[I]←1; 
	IF I>J THEN J←I;  END;
  SS←READIN(1);
END "SOR" ;  RELEASE(INCH); SAY("thru file1 " ↓ );

FILENAME←ASK("FILIN[TOPICS]="); FILIN(FILENAME);
SS←READIN(1); READCOMMENT(1);	

WHILE NOT EOF DO  BEGIN "TOPICS"
  SU←SCAN(SS,15,IDUM); IF SS THEN BEGIN SU←SS[2 TO 5];  I←CVD(SU); 
  IA[I]←IA[I]+2; IF I>J THEN J←I;  END;
  SS←READIN(1);
END "TOPICS" ; RELEASE(INCH); SAY("thru file2 " ↓ );

SAY("highest number is " & CVS(J) ↓ );
OUT(OUCH,"IN SOR, NOT IN PDAT " ↓ ↓ );

ITT(I,J)    IF IA[I]=1 THEN OUT(OUCH, "λ" & RIGHTZ(4,CVS(I)) ↓ );

OUT(OUCH, NULL ↓ );
OUT(OUCH,"IN PDAT, NOT IN SOR  " ↓ ↓ );

ITT(I,J)    IF IA[I]=2 THEN OUT(OUCH, "λ" & RIGHTZ(4,CVS(I)) ↓ );

RELEASE(OUCH);
END "U" ;
COMMENT  I ROUTINE FOR GETTING THE IMPORTANT STUFF FROM PDAT ;

IF EQU(S,"I") THEN BEGIN "I"

SAY("This makes a list of stuff from PDAT for PDATB  " ↓ );

FILENAME←ASK("FILIN="); FILIN(FILENAME);
SS←ASK("FILOUT="); FILOUT(SS);
SETBREAK(17,'12 & '15 & "?.()","","INR");  COMMENT THIS SCANS UNTIL ?.()CRLF ;

SS←INPUT(INCH,1);
READCOMMENT(1);	

WHILE NOT EOF DO  BEGIN

ST←NULL;

IF EQU("(#B λ", SS[1 TO 5]) THEN BEGIN  
  SU←INPUT(INCH,1);
  IF EQU(SU[2 TO 5],"PRED") THEN 
	ST←"(DEFPROP " & SS[5 TO 10] & SU[7 TO ∞] & " UNIT)"
  ELSE IF EQU(SU[2 TO 6],"CLASS") THEN
	ST←"(DEFPROP " & SU[8 TO ∞] & SS[4 TO 9] & " IND)";

  IF ¬EQU(ST,NULL) THEN OUT(OUCH,ST ↓ );
  END;

SS←INPUT(INCH,1);

END;

RELEASE(OUCH); RELEASE(INCH);
END "I" ;
COMMENT  C ROUTINE FOR GETTING A LIST OF TOPICS FROM PDAT ;

IF EQU(S,"C") THEN BEGIN "C"

SAY("This makes a list of bondvalues and topics from PDAT  " ↓ );

FILENAME←ASK("FILIN="); FILIN(FILENAME);
SS←ASK("FILOUT="); FILOUT(SS);
SETBREAK(17,'12 & '15 & "?.()","","INR");  COMMENT THIS SCANS UNTIL ?.()CRLF ;

SS←INPUT(INCH,1);
READCOMMENT(1);	

WHILE NOT EOF DO  BEGIN

IF EQU("(#B λ", SS[1 TO 5]) THEN BEGIN  SAY(SS ↓ );
  SU←SS[5 TO ∞];  ST←SCAN(SU,17,IDUM);  ST← SS[5 TO 9] & " " & SU;
  SS←INPUT(INCH,1); IF ¬EQU(SS[2 TO 6],"TOPIC") THEN SS←INPUT(INCH,1);
  IF ¬EQU(SS[2 TO 6],"TOPIC") THEN SAY("ERROR " & ST ↓ );
  SU←SCAN(SS,17,IDUM);
  I←LENGTH(SS);  IF I<8 THEN SU← '11 & '11 & '11 ELSE IF I<16 THEN SU← '11 & '11
	ELSE SU←'11;
  ST←SS & SU & ST;	COMMENT (HOSPITAL)  λ1112 (LOC I HOSP)  ;
  OUT(OUCH,ST ↓ );
  END;

SS←INPUT(INCH,1);

END;

RELEASE(OUCH); RELEASE(INCH);
END "C" ;
COMMENT  P ROUTINE FOR FOR GOING THRU DIA FILES;

IF EQU(S,"P") THEN BEGIN "P"

SAY("Here we go thru DIA files on DIA,KMC " ↓ );
FILIN("PAR2.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
I←CVD(SS); RELEASE(INCH);
SAY("top number = " & CVS(I) ↓ );
FILIN("THRU.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
J←CVD(SS); RELEASE(INCH);
SAY("bottom number = " & CVS(J) ↓ );
SS←ASK("Want to quit?");  IF EQU(SS,"Y") THEN DONE "TOPBLOCK";

FILIN("OUT.FIL[DIA,KMC]");
SS←INPUT(INCH,1);  IF EQU(SS,NULL) THEN SS←INPUT(INCH,1);
K←CVD(SS);  RELEASE(INCH);
FILOUT("OUT.FIL[DIA,KMC]");  OUT(OUCH,CVS(K+1) ↓ );  RELEASE(OUCH);

SS←"S" & CVS(K) & ".OUT[DIA,KMC]"; SAY("writing out on "&SS ↓ );  FILOUT(SS);

WHILE (J+1)≠I DO  BEGIN "READDIA"

J←J+1;
SS←"P"&CVS(J)&".DIA[DIA,KMC]";  SAY("reading from "& SS ↓ );
FILIN(SS);	
IF FLAG≠0 THEN BEGIN SAY(SS& " doesnt exist" ↓ ); CONTINUE "READDIA";  END;
SS←INPUT(INCH,1);  ST←NULL;

WHILE ¬EOF DO BEGIN "READFILE"

SV←ST;  ST←SU←NULL;
WHILE ¬EOF AND EQS(SS) DO SS←INPUT(INCH,1);
WHILE ¬EOF AND  ¬EQS(SS) AND EQU(ST,NULL) DO 
	BEGIN ST←SU; SU←SS; SS←INPUT(INCH,1); END;
COMMENT NOW HAVE INPUT IN ST, OUTPUT IN SU, PREVIOUS INPUT IN SV;

SAY(ST ↓ );  S1←ST; S←NULL;
SAY(SU ↓ ↓ );

IF EQU(ST,NULL) OR EQU(ST[1 TO 2],"PD") THEN SAY("ignore this " ↓ )
  ELSE  S←ASK("do what? ");
IF EQU(S,"H") THEN 
  BEGIN SAY("Copy, Enter sentence, Previous sent, Done with Dialog, Xit" ↓ );
	 S←ASK("do what?"); END;

IF EQU(S,"X") THEN DONE "READDIA";
IF EQU(S,"D") THEN DONE "READFILE";
IF EQU(S,"E") THEN S1←ASK("type in the new sentence ");
IF EQU(S,"O") THEN BEGIN LODED(SV ↓ );  S1←ASK("edit ") END;
IF EQU(S,"V") THEN BEGIN LODED(S1 ↓ );  S1←ASK("edit ") END;
IF EQU(S,"P") THEN S1←SV;
IF EQU(S,"E") OR EQU(S,"P") OR EQU(S,"C") OR EQU(S,"V") OR EQU(S,"O") THEN 
	OUT(OUCH, S1 ↓ ); 

END "READFILE" ;

SAY("thru "&CVS(J) ↓ );	 RELEASE(INCH);

END "READDIA" ;

IF I≠(J+1) THEN J←J-1;  COMMENT DIDN'T REALLY GET THRU JTH FILE;
RELEASE(OUCH);
FILOUT("THRU.FIL[DIA,KMC]");  OUT(OUCH,CVS(J) ↓ );  RELEASE(OUCH);
SAY("thru P" & CVS(J) ↓ );
SAY("done with DIA files" ↓ );

END "P" ;
COMMENT  A ROUTINE FOR REPLACING PRONOUNS BY "THEY" ;

IF EQU(S,"A") THEN BEGIN "A"

SAY("This replaces pronouns by THEY   " ↓ );
SAY("pronouns replaced are HE HIM HIS HER SHE HERS THEIR THEM " ↓ );

FILENAME←ASK("FILIN="); FILIN(FILENAME);
SS←ASK("FILOUT="); FILOUT(SS);

SS←INPUT(INCH,1); READCOMMENT(1);

WHILE NOT EOF DO  BEGIN "REPLACE"

ST←NULL;
SV←SCAN(SS,5,IDUM);

WHILE SS DO  BEGIN "LINE"
SU←SCAN(SS,14,IDUM);
IF QCHECK(SU[1 TO 1]) AND CHECK(SU) THEN ST←ST&" THEY" ELSE ST←ST&" "&SU;
SU←SCAN(SS,5,IDUM);

END "LINE" ;
IF ¬EQU(ST,NULL)  THEN ST←ST&". ";

OUT(OUCH,ST ↓ );
SS←INPUT(INCH,1);

END "REPLACE" ;

RELEASE(OUCH); RELEASE(INCH);
END "A" ;
COMMENT  G ROUTINE FOR APPENDING FILES ;

IF EQU(S,"G") THEN BEGIN "G"

SAY("This appends files  and adds the name and comments to the first line  " ↓ );

SS←ASK("FILOUT=");
FILOUT(SS);

FILENAME←ASK("FILIN (CR FOR END)= ");

WHILE FILENAME DO BEGIN "READFILE"

SAY("reading from "&FILENAME ↓ );
FILIN(FILENAME); 
OUT(OUCH,FILENAME ↓ ↓ );
SS←READIN(INCH); 

WHILE ¬EOF DO BEGIN "READLINE"

OUT(OUCH,SS ↓ ); 
SS←READIN(INCH); 

END "READLINE";

OUT( OUCH, '15 & '14 );  COMMENT CR AND FORM FEED;
SAY("done with "&FILENAME ↓ );
RELEASE(INCH);
FILENAME←ASK("FILIN (CR FOR END)= ");

END "READFILE" ;

RELEASE(OUCH); 

END "G" ;
COMMENT  B ROUTINE FOR SPECIAL MOD: PUTS IN BLANK LINES;

IF EQU(S,"B") THEN BEGIN "B"

SAY("This inserts a blank line between groups of lines which begin with" ↓ );
SAY("  the same first 6 characters: (λ1234 in an ANS file " ↓ );

FILENAME←ASK("FILIN="); FILIN(FILENAME);
SS←ASK("FILOUT="); FILOUT(SS);

SS←READIN(1); READCOMMENT(1);	

WHILE NOT EOF DO  BEGIN

OUTB(OUCH,SS ↓ );
SS←READIN(1);

END;

RELEASE(OUCH); RELEASE(INCH);
END "B" ;


COMMENT " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *";


COMMENT  T ROUTINE FOR TESTING THINGS;

IF EQU(S,"T") THEN BEGIN



END;  COMMENT END OF S=T;


END "TOPBLOCK" ;  COMMENT END TO INFINITE LOOP;

    	COMMENT END OF PROGRAM;
END;